package biblio;

/**
 * Classe de gestion du controle du cas d'utilisation
 * "Rendre un exemplaire non disponible".
 * 
  * @author IUT, refactoré  par E. Ceret & modifié par A. Chalumeau
 * @version 2.0
 * 
 */
public class CtrConsAuteur {

	// ************************************************************************************************************
	// Constantes
	// ************************************************************************************************************

	private static final long serialVersionUID = 1L;
	
	// ************************************************************************************************************
	// Attributs
	// ************************************************************************************************************

	private Bibliotheque _bibliotheque;

	// ************************************************************************************************************
	// Constructeur
	// ************************************************************************************************************

	/**
	 * Constructeur.
	 * @param bibliotheque biblioth�que � laquelle ce contr�leur est li�.
	 */
	public CtrConsAuteur(Bibliotheque bibliotheque) {

		// Liaison avec l'appli "Bibliotheque"
		this.lierBibliotheque(bibliotheque);
	} // Fin Constructeur

	// ************************************************************************************************************
	// M�thodes priv�es
	// ************************************************************************************************************

	// ------------------------------------------------------------------------------------------------------------
	// Accesseurs

	private Bibliotheque getBibliotheque() {
		return _bibliotheque;
	}
	
	// ------------------------------------------------------------------------------------------------------------
	// Affecteurs

	private void lierBibliotheque(Bibliotheque bibliotheque) {
	    _bibliotheque = bibliotheque;
	} // Fin lierBibliotheque
	
	// ************************************************************************************************************
	// M�thodes publiques
	// ************************************************************************************************************

	// ------------------------------------------------------------------------------------------------------------
	// Traitements

	/**
	 * Consultation d'un lecteur � partir de la saisie de son num�ro
	 */
	public void consulterAuteur() {
		EntreesSorties.afficherTitre("Consultation d'un Auteur");

		// Saisie du num�ro de auteur
		String nom = EntreesSorties.lireChaine("Nom  de l' Auteur :");
		String prenom = EntreesSorties.lireChaine("Prénom  de l' Auteur :");

		// V�rification l'existence de l'+++9++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++auteur
		Auteur auteur = this.getBibliotheque().getAuteur(nom, prenom);
		
		if (auteur !=null) { // L
			
			// Cr�ation de la vue
			VueAuteur vueAuteur = new VueAuteur(auteur);

			// Affichage du auteur
			vueAuteur.afficherTout();

			// Suppression de la vue vueExemplaire comme Observatrice de l'objet auteur
			vueAuteur.elimineObserveur();
			
			// Remise � null de la variable, ce qui aura pour effet de d�truire l'objet vueAuteur (pas
			// d'autre variable qui le r�f�rence)
			vueAuteur = null;
		}
		else{
			System.out.println("Auteur inconnu.");
			System.out.println();
		}
	} // Fin consAuteur

} // Fin Classe CtrConsAuteur